home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / ip / ka9q / src890906.arc / NETUSER.C < prev    next >
C/C++ Source or Header  |  1989-08-07  |  1KB  |  78 lines

  1. /* Miscellaneous format conversion subroutines */
  2. #define LINELEN 256
  3. #include <ctype.h>
  4. #include <stdio.h>
  5. #include "global.h"
  6. #include "netuser.h"
  7.  
  8. int Net_error;
  9.  
  10. /* Convert Internet address in ascii dotted-decimal format (44.0.0.1) to
  11.  * binary IP address
  12.  */
  13. int32
  14. aton(s)
  15. register char *s;
  16. {
  17.     int32 n;
  18.  
  19.     register int i;
  20.  
  21.     n = 0;
  22.     for(i=24;i>=0;i -= 8){
  23.         n |= (int32)atoi(s) << i;
  24.         if((s = strchr(s,'.')) == NULLCHAR)
  25.         break;
  26.         s++;
  27.     }
  28.     return n;
  29. }
  30. /* Convert an internet address (in host byte order) to a dotted decimal ascii
  31.  * string, e.g., 255.255.255.255\0
  32.  */
  33. char *
  34. inet_ntoa(a)
  35. int32 a;
  36. {
  37.     static char buf[16];
  38.  
  39.     sprintf(buf,"%u.%u.%u.%u",
  40.         hibyte(hiword(a)),
  41.         lobyte(hiword(a)),
  42.         hibyte(loword(a)),
  43.         lobyte(loword(a)) );
  44.     return buf;
  45. }
  46. /* Convert hex-ascii string to long integer */
  47. long
  48. htol(s)
  49. char *s;
  50. {
  51.     long ret;
  52.     char c;
  53.  
  54.     ret = 0;
  55.     while((c = *s++) != '\0'){
  56.         c &= 0x7f;
  57.         if(c >= '0' && c <= '9')
  58.             ret = ret*16 + (c - '0');
  59.         else if(c >= 'a' && c <= 'f')
  60.             ret = ret*16 + (10 + c - 'a');
  61.         else if(c >= 'A' && c <= 'F')
  62.             ret = ret*16 + (10 + c - 'A');
  63.         else
  64.             break;
  65.     }
  66.     return ret;
  67. }
  68. char *
  69. pinet(s)
  70. struct socket *s;
  71. {
  72.     static char buf[30];
  73.  
  74.     sprintf(buf,"%s:%u",inet_ntoa(s->address),s->port);
  75.     return buf;
  76. }
  77.  
  78.